『ゼロから作るDeep Learning ⑤ 生成モデル編』
https://gyazo.com/f4407440f470c8c12c743795d96e92e2
2024/4/25
大扉
クレジット
まえがき
1.1 確率の基礎
1.1.1 確率変数と確率分布
1.1.2 確率分布の種類
1.1.3 期待値と分散
1.2 正規分布
1.2.1 正規分布の確率密度関数
1.2.2 正規分布のコード
1.2.3 パラメータの役割
1.3.1 中心極限定理とは
1.3.2 中心極限定理の実験
1.4 サンプル和の確率分布
1.4.1 サンプル和の期待値と分散
1.4.2 コードで確かめる
1.4.3 一様分布の平均と分散✪
1.5 身の回りにある正規分布
2.1 生成モデルの概要
2.1.1 生成モデルとは
2.1.2 母集団とサンプル
2.2 実データを使った生成モデルの実装
2.2.1 身長データセットの読み込み
2.2.2 正規分布による生成モデル
2.3 最尤推定の理論
2.3.1 尤度の最大化
2.3.2 微分を使って最大値を探す
2.3.3 正規分布の最尤推定✪
2.4 生成モデルの用途
2.4.1 新しいデータの生成
2.4.2 確率の計算
3.1 NumPyと多次元配列
3.1.1 多次元配列
3.1.2 NumPyの多次元配列
3.1.3 要素ごとの演算
3.1.4 ベクトルの内積と行列積
3.2 多次元正規分布
3.2.1 多次元正規分布の式
3.2.2 多次元正規分布の実装
3.3 2次元正規分布の可視化
3.3.1 3Dグラフの描画方法
3.3.2 等高線の描画
3.3.3 2次元正規分布のグラフ
3.4 多次元正規分布の最尤推定
3.4.1 最尤推定を行う
3.4.2 最尤推定の実装
3.4.3 実データを使う
ステップ4 混合ガウスモデル
4.1 身の回りにある多峰性分布
4.1.1 多峰性分布のデータセット
4.2.2 データ生成を行うコード
4.3 混合ガウスモデルの式
4.3.1 確率の復習
4.3.2 GMMの式
4.3.3 GMMの実装
4.4 パラメータ推定の難所
4.4.1 GMMのパラメータ推定
5.1.1 数式の表記について
5.1.2 KLダイバージェンスの定義式
5.1.3 KLダイバージェンスと最尤推定の関係
5.2 EMアルゴリズムの導出①
5.2.1 潜在変数を持つモデル
5.2.2 任意の確率分布q(z)
5.3 EMアルゴリズムの導出②
5.3.2 EMアルゴリズムへ
5.3.3 複数データへの拡張
5.3.4 log p(x; θnew) ≥ log p(x; θold)の証明✪
5.4 GMMとEMアルゴリズム✪
5.4.1 EMアルゴリズムのEステップ✪
5.4.2 EMアルゴリズムのMステップ✪
5.5 EMアルゴリズムの実装
5.5.1 データセットとGMMのコード
5.5.2 EステップとMステップの実装
5.5.3 データ生成
ステップ6 ニューラルネットワーク
6.1 PyTorchと勾配法
6.1.1 PyTorchのインストール
6.1.2 テンソルの計算
6.1.3 勾配法
6.2.1 トイ・データセット
6.2.2 線形回帰の理論
6.2.3 線形回帰の実装
6.3 パラメータとオプティマイザ
6.3.1 ParameterとModuleクラス
6.3.2 オプティマイザ
6.4 ニューラルネットワークの実装
6.4.1 非線形なデータセット
6.4.2 線形変換と活性化関数
6.4.3 ニューラルネットワークの実装
6.5 torchvisionとデータセット
6.5.1 torchvisionのインストール
6.5.2 MNISTデータセット
6.5.3 前処理
6.5.4 データローダ
7.1.1 1つの正規分布
7.1.3 VAE
7.1.4 EMアルゴリズムの問題点
7.2 VAEとエンコーダ
7.2.1 EMアルゴリズムからVAEへ
7.2.2 データセット全体への適用
7.3 ELBOの最適化
7.3.1 ELBOの評価
7.3.2 変数変換トリック
7.4 VAEの実装
7.4.1 実装の方針
7.4.2 VAEのコード
7.4.3 学習を行うコード
7.4.4 新しい画像の生成
ステップ8 拡散モデルの理論
8.1 VAEから拡散モデルへ
8.1.1 VAEの復習
8.1.2 潜在変数の階層化
8.1.3 拡散モデルへ
8.2 拡散過程と逆拡散過程
8.3 ELBOの計算①
8.3.1 拡散モデルのELBO
8.3.2 ELBOの式展開
8.4 ELBOの計算②
8.4.1 q(xt | x0)の式
8.4.2 ELBOの近似解
8.4.3 q(xt | x0)の導出✪
8.5 ELBOの計算③
8.5.1 q(xt-1 | xt,x0)の式
8.5.2 ELBOの近似解
8.5.3 q(xt-1 | xt,x0)の導出✪
8.6 拡散モデルの学習
8.6.1 ニューラルネットワークは何を予測するか?
8.6.2 元データを復元するニューラルネットワーク
8.6.3 ノイズを予測するニューラルネットワーク
8.6.4 新しいデータのサンプリング
ステップ9 拡散モデルの実装
9.1.1 U-Netとは
9.1.2 U-Netの実装
9.2 正弦波位置エンコーディング
9.2.2 正弦波位置エンコーディングの実装
9.2.3 U-Netに組み込む
9.3.1 q(xt | xt-1)からのサンプリング
9.3.2 画像に対する拡散過程
9.3.3 q(xt | x0)からのサンプリング
9.3.4 Diffuserクラスの実装
9.4 データ生成
9.4.1 ワンステップのデノイズ処理
9.4.2 データ生成の実装
9.5 拡散モデルの学習(実装編)
9.5.1 拡散モデルの学習コード
9.5.2 学習結果
10.1.1 拡散モデルに条件を追加する
10.1.2 条件付き拡散モデルの実装
10.2 スコア関数
10.2.1 スコア関数とは
10.2.2 式(10.1)の証明✪
10.3.1 分類器とは
10.3.2 分類器ガイダンスの導出
10.4 分類器なしガイダンス
10.4.1 分類器なしガイダンスの理論
10.4.2 分類器なしガイダンスの実装
10.5 Stable Diffusion
10.5.1 Stable Diffusionの仕組み
10.5.2 Diffusersライブラリ
付録A 多次元正規分布の最尤推定の導出✪
A.1 μの最尤推定
A.2 2次形式の微分(式(A.4)の証明)
A.3 Σの最尤推定
A.4 トレースと微分(式(A.12)の証明)
付録B イェンセンの不等式
B.1 凸関数とイェンセンの不等式
B.2 凹関数とlog関数
B.3 ELBOの導出
付録C 階層型VAEの理論と実装✪
C.1 2階層VAEの構成要素
C.2 ELBOの式展開
C.3 モンテカルロ法によるELBOの近似
C.4 2階層VAEの実装
C.5 実装コード
付録D 数式記号一覧
D.1 本書で使用する記号
D.2 本書で使用する数式
おわりに
参考文献
著者紹介
奥付